package com.ruoyi.shop.api.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.web.oldDomain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 商家促销活动商品业务对象 erp_seller_store_promotion_activity_product
 *
 * @author erp
 * @date 2023-06-08
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ErpSellerStorePromotionActivityProductBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 在线商品表id
     */
    @NotNull(message = "在线商品表id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long storeProductId;

    /**
     * 速卖通商品id
     */
    @NotNull(message = "速卖通商品id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long aeProductId;

    /**
     * 商品sku信息;quantity sku_attrsku属性
     */
    @NotBlank(message = "商品sku信息;quantity sku_attrsku属性不能为空", groups = { AddGroup.class, EditGroup.class })
    private String skuInventoryList;

    /**
     * 活动商品优惠信息;discount 折扣 terminal 终端 MOBILE or ALL
     */
    @NotBlank(message = "活动商品优惠信息;discount 折扣 terminal 终端 MOBILE or ALL不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productDiscountList;

    /**
     * 活动id
     */
    @NotNull(message = "活动id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String promotionId;

    /**
     * 活动表id
     */
    @NotNull(message = "活动表id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long activityId;

    /**
     * 粉丝折扣;粉丝折扣,与exist_store_fans_discount不同值时，才会更新粉丝折扣
     */
    @NotBlank(message = "粉丝折扣;粉丝折扣,与exist_store_fans_discount不同值时，才会更新粉丝折扣不能为空", groups = { AddGroup.class, EditGroup.class })
    private String storeClubDiscountRate;

    /**
     * 已存在的粉丝折扣;已存在的粉丝折扣 默认为0
     */
    @NotBlank(message = "已存在的粉丝折扣;已存在的粉丝折扣 默认为0不能为空", groups = { AddGroup.class, EditGroup.class })
    private String existStoreFansDiscount;

    /**
     * 每人限购数量(每人最多购买数量)
     */
    @NotNull(message = "每人限购数量(每人最多购买数量)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long buyMaxNum;

    private Integer status;

    /**
     * 乐观锁
     */
    @NotBlank(message = "乐观锁不能为空", groups = { AddGroup.class, EditGroup.class })
    private String revision;


}
